Make Podman support more prominent in the documentation#1471
Make Podman support more prominent in the documentation#1471rgaiacs merged 30 commits intojupyterhub:mainfrom
Conversation
a9434d3 to
a0e43fc
Compare
|
Please correct me if I got something wrong. Before #1402, After #1402, Regarding container technology, the big players are
Podman keeps some level of compatibility with Docker. As far as I know, Singularity / Apptainer are incompatible with Docker. My first question is, should If the answer is "yes", a follow up question is what would be the road map for |
|
My understanding was that podman was supported as long as it the engine backed by the docker cli (e.g. I use colima, not docker engine), but podman cli is not supported first-class in this package. Is that accurate, @manics? I agree generally that pointing most language to OCI terms is good, but I don't know what commitment we are making in terms of cli compatibility assumptions. |
|
Originally repo2docker should've worked fine with Podman when run as a service since podman has a docker compatible API: After #1402 we're now using the Docker CLI. In general the Podman CLI should be compatible, but I haven't looked at how good |
|
If we've got tests running that verify it (to a reasonable degree), I'm happy to make the support official. |
|
After
most of the tests using Podman fails. One of the tests fails in repo2docker/repo2docker/app.py Lines 633 to 634 in 358888c @manics do you know what might be happening? |
|
In 48e9243, tests with Podman were failing because Podman's service was not activate. This was fixed in 4e7ed9e and documented in ef36a9c. Test of repo2docker/repo2docker/app.py Lines 632 to 634 in 358888c import docker
a = docker.APIClient(base_url="unix:///run/user/1000/podman/podman.sock")
i = a.inspect_image("docker.io/library/httpd:latest")
i.configthat returns but I can access the information using i["Config"]["WorkingDir"]I tested the import docker
a = docker.APIClient(base_url="unix:///run/user/1000/podman/podman.sock")
i = a.inspect_image("docker.io/library/httpd:latest")
i["Config"]["WorkingDir"]with Docker and it works. |
e461156 to
b3dea2d
Compare
|
A few tests are failing.
|
1e51be6 to
efe313d
Compare
|
With commit pytest -s tests/unit/test_editable.py::test_editablethe log shows Why does the above warning happened? Is |
I repo2podman I found passing the format arg |
efe313d to
ae4ebb1
Compare
|
This is ready for a review and I would suggest to avoid increase it more. The tests now run and pass for Podman as for Docker. Because Podman is, by default, rootless, I configured tests related to bind mount to be skipped, read #1483 for details. I also skipped the tests related with the registry as they have some bind mount, see repo2docker/tests/norun/test_registry.py Lines 42 to 43 in 443b851 The GitHub Action runner |
|
@minrk wrote
Excepted for some tests mentioned in #1471 (comment), we have all existing tests passing for Podman and Docker. @manics wrote
and I agree that we could avoid run all the tests a second time for Podman. Before I amend this pull request, do you have a strong opinion of which or how many tests should be run with Podman? Instead of using @manics suggestion to select the subset of tests for Podman with |
|
How about:
If you're using pytest.mark perhaps mark them as something like "quick/quicktest/fast/etc" instead of "podman" since it's more generally useful if you don't want to run the full test suite? |
because Podman does not support bind mount. Related to jupyterhub#1483
Thanks to @maniacs for the review.
Co-authored-by: Min RK <benjaminrk@gmail.com>
8824162 to
7270129
Compare
|
The tests with Podman were stuck waiting for a server with the label
7f6b65e resolved the problem. |
|
Strangely the failing test is runingn out of disk space |
Is a suitable solution to call Line 92 in ca21e1b |
|
There's certainly workarounds we can add, like removing images/containers, or freeing up space on the VM https://github.com/manics/action-free-disk-space |
I'm also surprising as the same test for Docker does not have the storage limit problem. |
|
6baaf08 failed when running the tests with the same "no space left on device" message. I don't know why the step to remove the old image did not avoid this problem. In 7f6b65e, the only tests to fail were
but, now, there list of tests to fail increased to include
In containers/podman#16192, the user
@minrk and @manics what do you think of also disable the test of conda for podman until
given that Ubuntu 24.04 LTS used for test has a older version of Podman (4.9). |
|
@manics and @minrk I disabled the test of conda for podman as mentioned in the previous message. Now, all the tests pass. This includes the I would like to merge this on Monday, 19 January as this pull request is already big enough and was reviewed multiple times. |

By